#ifndef UTILFUNCTIONS_H
#define UTILFUNCTIONS_H

class Position
{
	public:
		float x, y;
		float z;
		float angle;

		Position ( )	{ x = y = z = angle = 0; }
		Position ( float X, float Y, float Z, float Angle = 0 )
			{ x = X; y = Y; z = Z; angle = 0; }


		Position & operator = (Position & point)
		{
			x = point.x;
			y = point.y;
			z = point.z;
			angle = point.angle;
			return *this;
		}

		Position & operator = (float value)
		{
			x = y = z = value;
			angle = 0;
			return *this;
		}

		Position & operator += (Position & point)
		{
			x += point.x;
			y += point.y;
			z += point.z;
			angle += point.angle;
			return *this;
		}
};

class Circle
{
	public:
		Circle ( )	{ x = y = r = 0; }
		Circle ( float X, float Y, float R )
			{ x = X; y = Y; r = R; }

		float x, y;
		float r;

		float cX () { return x + r; }
		float cY () { return y - r; }

		Circle & operator = (Circle & point)
		{
			x = point.x;
			y = point.y;
			r = point.r;
			return *this;
		}

		Circle & operator = (float value)
		{
			x = y = r = value;
			return *this;
		}
};

#endif
